/***************************************************************************************************
 *Copyright(C),2010-2017,Sumscope
 *FileName	:  pinyin_search_idstore.h
 *Author	:  scofined.qi
 *Version	:  1.0
 *Date		:  2017/06/04
 *Desc		:  //用于主要说明此程序文件完成的主要功能
 *Relation :
 *Others	:  //其他内容说明
 *Function :  //主要函数列表，每条记录应包含函数名及功能简要说明
 *History	:
 * //修改历史记录列表，每条修改记录应包含修改日期、修改者及修改内容简介
 ***************************************************************************************************/
#pragma once

#include "pinyin_search_define.h"
#include "pinyin_search_set.h"

namespace qb {
namespace base {
namespace internal {
class IndexIdStore {
  IndexId* m_first;  // 按照bid递增
  int m_count;       // 个数
  int m_capcity;     // 容量
 public:
  IndexIdStore() : m_capcity(16), m_count(0), m_first(NULL) {}
  ~IndexIdStore() {
    if (m_first) delete[] m_first;
    m_first = NULL;
  }
  void init(const InverseSet& iset);
  void init(const IndexId* first, int count);
  void setcount(int ncount) { m_count = ncount; }
  int count() const { return m_count; }
  int get(int i) { return m_first[i]; }
  IndexId* first() { return m_first; }

 protected:
  void resetcapcity(int capcity);
};

}  // namespace internal
}  // namespace base
}  // namespace qb
